const ApiError = require('../utils/ApiError');

const errorHandler = (err, req, res, next) => {
    console.error(err);
    
    if (err instanceof ApiError) {
        return res.status(err.statusCode).json({
            success: false,
            message: err.message
        });
    }
    
    // 处理JWT错误
    if (err.name === 'JsonWebTokenError') {
        return res.status(401).json({
            success: false,
            message: '无效的令牌'
        });
    }
    
    // 处理验证错误
    if (err.name === 'ValidationError') {
        return res.status(400).json({
            success: false,
            message: err.message
        });
    }
    
    // 其他错误
    res.status(500).json({
        success: false,
        message: '服务器错误'
    });
};

module.exports = errorHandler;